<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<?php session_start();
if (isset($_SESSION['cliente'])){
   exit('Ya ha iniciado sesion con este navegador. Intente loguearse con otro.');
}
?>
<html>
<head>
<script src="js/cookie.js" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
	include ("config.php");
	include ("detectCell.php");
?>
<title>
<?=TITLE_LOGIN?>
</title>
<script type="text/javascript" src="js/md5.js"></script>
<script language="javascript" src="js/browserdetect.js"></script>
<script language="javascript" src="js/json.js"></script>
<script language="javascript" src="js/myClass/MyClass.js"></script>
<script src="js/clases/MyDate.js" type="text/javascript"></script>
<script src="js/utils.js" type="text/javascript"></script>
<script language="javascript" src="js/myClass/MyAjax.js"></script>
<script language="JavaScript">
	<?php if(DEBUG_MODE == 0){ ?>
	ctrl_FirebugActive();
	<?php } ?>
	var nombreCookie = 'wcObjetivo';
	var READY_STATE_UNINITIALIZED 	= 0;
	var READY_STATE_LOADING 		= 1;
	var READY_STATE_LOADED 			= 2;
	var READY_STATE_INTERACTIVE 	= 3;
	var READY_STATE_COMPLETE 		= 4;

	function showDiv(divId) {
  		document.getElementById(divId).style.display = "block";
	}

	function hideDiv(divId) {
  		document.getElementById(divId).style.display = "none";
	}

	function validarLogin()
	{
		var valorObjetivo = parseInt(document.forms[0].objetivo.value);
 		var codigorc = document.forms[0].codigorc.value;
 		var codigocuenta = document.forms[0].codigocuenta.value;
 		var particion = document.forms[0].particion.value;
 		var password = document.forms[0].password.value;
 		var codigoFlota = document.forms[0].codigoFlota.value;
 		var aliasString = document.forms[0].aliasString.value;
		var codigoDealer = document.forms[0].codigoDealer.value;

 		if ( (valorObjetivo == 1 && (codigorc.length==0 || codigocuenta.length==0 || particion.length==0)) ||
			 (valorObjetivo == 2 && (codigorc.length==0 || codigocuenta.length==0 )) ||
 		     (valorObjetivo == 3 && codigoFlota.length == 0) ||
 		     (valorObjetivo == 4 && aliasString.length == 0) ||
			 (valorObjetivo == 5 && codigoDealer.length == 0) ||
 		     (password.length == 0)
 		   )
 		{
    		alert("Los campos no pueden estar vacios!");
 			return false;
 		}
 		if (valorObjetivo == 1 && isNaN(particion))
 		{
  			alert("El campo PARTICION debe ser un numero");
  			return false;
 		}
 		//document.forms[0].password.value = calcMD5(document.forms[0].password.value);
 		return true;
	}


	function setDefaultObjetivo() {
		var galleta = CojerCookie(nombreCookie);
		if (galleta != null) {
			document.forms[0].objetivo.value = galleta;
			valorObjetivo = galleta;
		}
	 }

</script>
<link href="styles/login.css" rel="stylesheet" type="text/css">
<?php  if ($_REQUEST['logout']="salir")
       {
          session_destroy();
          $_SESSION = array();
       }
?>
<style type="text/css">
<!--
a:link {
	color: 59A8F2;
}
a:visited {
	color: 59A8F2;
}
a:hover {
	color: #7EBDF5;
}
a:active {
	color: #7EBDF5;
}
-->
</style>
<link rel="stylesheet" href="<?php echo ESTILO?>/welcome.css" type="text/css" media="screen" charset="utf-8"/>
</head>
<body onLoad="initialize()" >
<div id="loginPAGE" style="display:;">
  <?= MSJ_DEMO?>
  <div id="loginBOX" class="rounded shadow">
    <div id="logo_login_home"></div>
    <div id="imagen_login_home" class="monitoreo"></div>
    <div class="formContainer">
      <form method="post" action="principal2.php" name="frmLogin" id="frmLogin" onKeyDown="if( event.keyCode == 13 ) { enviarFormularioLogin(); return false;} ">
        <fieldset>
          <legend>Login&nbsp;</legend>
          <ul class="form">
            <li>
              <label>OBJETIVO:</label>
              <select size="1" name="objetivo" id="objetivo" onChange="changeLogin();">
                <option selected value="1">Fijo</option>
                <option value="2">M&oacute;vil</option>
                <option value="3">Flota</option>
                <option value="4">Alias</option>
                <option value="5">Dealer</option>
              </select>
            </li>

            <!--bloque-->
            <li>
              <label>
                  <span id="idUsuarioDiv">ID USUARIO:</span>
                  <span id="idFlotaDiv">ID FLOTA:</span>
                  <span id="idAliasDiv">ALIAS:</span>
                  <span id="idDealerDiv">ID DEALER:</span>
              </label>

              <!-- ID USUARIO -->
              <span id="usuarioDiv">
                <input name="codigorc" type="text" id="codigorc" size="2" maxlength="2" />
                <input name="codigocuenta" type="text"  id="codigocuenta" size="6" maxlength="6"/>
                <span id="particionDIV">
                <input name="particion" type="text"  id="particion" size="2" maxlength="2"/>
                </span>
              </span>
              <!-- ID FLOTA -->
              <span id="flotaDiv">
                <input name="codigoFlota" id="codigoFlota" type="text"  size="20" maxlength="15" />
              </span>
              <!-- ID ALIAS -->
              <span id="aliasDiv">
                <input name="aliasString" id="aliasString" type="text"  size="20" maxlength="15" />
              </span>
              <!-- ID DEALER -->
              <span id="dealerDiv">
                <input name="codigoDealer" id="codigoDealer" type="text"  size="20" maxlength="15" />
              </span>
              <span class="leftNote"></span>

              </li>
              <!-- finbloque-->
              <li>
                  <label>PASSWORD:</label>
                  <input name="password" type="password" class="inputWelcome" id="password" size="13"/>
                  <span class="leftNote"></span>
              </li>
              <li>
                  <button type="button" class="roundedBtn" onClick="enviarFormularioLogin();"><img src="images/icons/textfield_key.png" alt=""/>Ingresar</button>
                  <span class="leftNote"><a onClick="forgotPass()" style="cursor:pointer;" >&iquest;Olvid&oacute; su contrase&ntilde;a?</a>&nbsp;|&nbsp;
                  <a onClick="activarCuenta()" class="link" style="cursor:pointer;" >Activar cuenta</a>
                  </span>
              </li>
          </ul>
        </fieldset>
      </form>
    </div>
  </div>


  <div id="divCargando" align="center" style="display:none;">
        <p>Verificando datos...</p>
        <img src="images/loader_bar.gif" border="0"  style="text-align:center;" />
  </div>

  <div id="loginFOOTER">
      <span class="textWelcome">
      &copy; 2009 Bykom S.A.. Todos los Derechos Reservados.<br><a href=#>Pol&iacute;tica de Privacidad</a> | <a href=#> Acceso Administrativo</a>
      </span>
  <table width="100%" align="center" cellspacing="5">
        <tr>
          <td>&nbsp;</td>
          <td width="24"><img src="images/browser_chrome.png" title="Google Chrome"></td>
          <td width="24"><img src="images/browser_firefox.png" width="24" height="26" title="Mozilla Firefox"></td>
          <td width="24"><img src="images/browser_ie.png" title="Microsoft Internet Explorer 6.0 y superiores"></td>
          <td>&nbsp;</td>
        </tr>
      </table>
  </div>


<FORM NAME='frmPublicidad' ID='frmPublicidad' ACTION='publicidad.php' METHOD='post'>
  <input type='hidden' name='publicidadId' id="publicidadId">
  <input type='hidden' name='canCheck' id="canCheck">
</FORM>

</div>

<div id="mantenimientoPAGE" style="display:none">
  <div class="mantenimientoBGimage" style="left: 50%;margin-left: -245px;
    margin-top: -150px;
    position: absolute;
    top: 50%;
    width: 490px;">
  	<div class="textWelcomeFooter" style="padding-left: 196px;padding-top: 127px;">El acceso al sistema esta inhabilitado.<br>
   	Motivo: <span id="motivoMantenimiento"></span><br>
    Tiempo estimado de espera: <span id="tiempoMantenimiento"></span><br>
    Disculpe las molestias ocasionadas.
    </div>
  </div>
</div>
<script>

/*	INICIO AJAX MANTENIMIENTO	*/

	var isLoginVisible = false;
	var isMantenimientoVisible = false;
	var mailStatus = 0;
	function OnReadyStateChangeMantenimiento(reqHandlerMantenimiento)
	{
		var ready = reqHandlerMantenimiento.readyState;
		if (ready == READY_STATE_COMPLETE){
			var results = reqHandlerMantenimiento.responseText.parseJSON();
			//emailStatus
			if( (results!='undefined') && (results.length>1) ){
				//alert(results[1]);
				mailStatus = parseInt(results[1]);
			}
			//mantenimiento
			if( (results=='undefined') || (results.length==0) ||
				(results[0] != 'undefined' && results[0] != null && results[0].activo==0) ){
				if (!isLoginVisible){
					hideDiv('mantenimientoPAGE');
					showDiv('loginPAGE');
					isLoginVisible=true;
					isMantenimientoVisible=false;
					initLoginState();
				}
			}else{
				if( !isMantenimientoVisible ){
					document.getElementById('motivoMantenimiento').innerHTML = results[0].motivo;
					hideDiv('loginPAGE');
					showDiv('mantenimientoPAGE');
					isLoginVisible=false;
					isMantenimientoVisible=true;
				}
				//calculo del tiempo estimado de espera
				var tiempo = "AGOTADO.";
				var ini = new MyDate(results[0].fechaInicio);
				//var now = new Date();
				var now = new MyDate(results[0].hoy);
				ini = ini.date.getTime();
				now = now.date.getTime();
				if (now > ini){
					var time = now - ini;
					time = time/(1000*60);
					if (time < parseInt(results[0].tiempoEstimado)){
						time = parseInt(results[0].tiempoEstimado) - time;
						tiempo = parseInt(time) + " minutos.";
					}
				}
				document.getElementById('tiempoMantenimiento').innerHTML = tiempo;
			}
			setTimeout(controlarMantenimiento,5000);
		}
	}

	function controlarMantenimiento()
	{
		var params = { COMMAND: "MANTENIMIENTO" };
		var myAjax = new MyAjax();
		myAjax.send('querycontroller.php', params, OnReadyStateChangeMantenimiento);
	}

/*	FIN AJAX MANTENIMIENTO	*/


/*	INICIO AJAX LOGUEO	*/
	function OnReadyStateChangeLogin(reqHandlerLogin)
	{
		var ready = reqHandlerLogin.readyState;
		if( ready == READY_STATE_COMPLETE )
		{
			var loginClass = reqHandlerLogin.responseText.parseJSON();
			if( (loginClass=='undefined') || (loginClass=='null') || (loginClass==false) )
			{
				alertaMensaje( 30 );

			}
			else
			{
				if( loginClass.errorCode == 0 )
				{
					controlarPublicidad( loginClass );
				}
				else
				{
					alertaMensaje( loginClass.errorCode );
				}
			}
		}
	}

	function controlarLogin()
	{
		showDiv("divCargando");
		var formLogin = document.getElementById('frmLogin');
    	var objetivo = formLogin.objetivo.value;
		var params = { COMMAND: "LOGIN",
					   objetivo: objetivo,
					   password: formLogin.password.value
					 };
		switch( parseInt(objetivo) )
		{
			case 1:
			{
				params.codigorc = formLogin.codigorc.value;
				params.codigocuenta = formLogin.codigocuenta.value;
				params.particion = formLogin.particion.value;
				break;
			}
			case 2:
			{
				params.codigorc = formLogin.codigorc.value;
				params.codigocuenta = formLogin.codigocuenta.value;
				params.particion = formLogin.particion.value;
				break;
			}
			case 3:
			{
				params.codigoFlota = formLogin.codigoFlota.value;
				break;
			}
			case 4:
			{
				params.aliasString = formLogin.aliasString.value;
				break;
			}
			case 5:
			{
				params.codigoDealer = formLogin.codigoDealer.value;
				break;
			}
		}

		var myAjax = new MyAjax();
		myAjax.send('querycontroller.php', params, OnReadyStateChangeLogin);
	}

/*	FIN AJAX LOGUEO	*/

/*	INICIO AJAX PUBLICIDAD	*/
	function OnReadyStateChangePublicidad(reqHandlerPublicidad)
	{
		var ready = reqHandlerPublicidad.readyState;
		if( ready == READY_STATE_COMPLETE )
		{
			var consultaPublicidad = reqHandlerPublicidad.responseText.parseJSON();
			if( (consultaPublicidad=='undefined') || (consultaPublicidad=='null') || (consultaPublicidad==false) )
			{
				window.location.href = "principal2.php";
			}
			else
			{
				if( consultaPublicidad.publicidadId == -1 )
				{
					window.location.href = "principal2.php";
				}
				else
				{
					var formPublicidad = document.getElementById('frmPublicidad');
					formPublicidad.publicidadId.value = consultaPublicidad.publicidadId;
					formPublicidad.canCheck.value = consultaPublicidad.canCheck;
					formPublicidad.submit();
				}
			}
		}
	}

	function controlarPublicidad( loginClass )
	{
		var params = { COMMAND: "CONSULTAPUBLICIDAD",
					   tablaId: loginClass.tablaId,
					   objetivo: loginClass.objetivo
					 };
		var myAjax = new MyAjax();
		myAjax.send('querycontroller.php', params, OnReadyStateChangePublicidad);
	}

/*	FIN AJAX PUBLICIDAD	*/


	/**
		ENVIARFORMULARIOLOGIN
		Es ejecutado por el boton "Submit".
		Guarda las cookies correspondientes, valida los datos y los envia para su verificacion
	 */
	function enviarFormularioLogin()
	{
		var formLogin = document.getElementById('frmLogin');
    	var valorObjetivo = formLogin.objetivo.value;

		IntroducirCookie(nombreCookie, valorObjetivo);

		switch( parseInt(valorObjetivo) )
		{
			case 1:
			{
				IntroducirCookie('codigorc', formLogin.codigorc.value);
				IntroducirCookie('codigocuenta', formLogin.codigocuenta.value);
				IntroducirCookie('particion', formLogin.particion.value);
				break;
			}
		    case 2:
			{
				IntroducirCookie('codigorc', formLogin.codigorc.value);
				IntroducirCookie('codigocuenta', formLogin.codigocuenta.value);
				IntroducirCookie('particion', formLogin.particion.value);
				break;
			}
			case 3:
			{
				IntroducirCookie('codigoFlota', formLogin.codigoFlota.value);
				break;
			}
			case 4:
			{
				IntroducirCookie('aliasString', formLogin.aliasString.value);
				break;
			}
			case 5:
			{
				IntroducirCookie('codigoDealer', formLogin.codigoDealer.value);
				break;
			}
		}

		if( validarLogin() )
			controlarLogin();
	}


	function forgotPass(){
		if (!mailStatus){
			alert('El servicio de envio de mail del servidor WCAdmin no esta funcionando correctamente. Intente realizar esta operacion en otro momento o contactese con el administrador para mas detalles.')
		}
		else{
			location.href='forgotPass.php?style=0';
		}
	}

	function activarCuenta(){
		if (!mailStatus){
			alert('El servicio de envio de mail del servidor WCAdmin no esta funcionando correctamente. Intente realizar esta operacion en otro momento o contactese con el administrador para mas detalles.')
		}
		else{
			location.href='forgotPass.php?style=1';
		}
	}

    function changeLogin() {

    	var valorObjetivo = document.forms[0].objetivo.value;
//		document.forms[0].codigorc.value = "";
// 		document.forms[0].codigocuenta.value = "";
// 		document.forms[0].particion.value = "";
// 		document.forms[0].password.value = "";
// 		document.forms[0].codigoFlota.value = "";
//		document.forms[0].codigoDealer.value = "";

		setDefaultUsuario();

		hideDiv("idFlotaDiv");
		hideDiv("flotaDiv");
		hideDiv("idAliasDiv");
		hideDiv("aliasDiv");
		hideDiv("particionDIV");
		hideDiv("usuarioDiv");
		hideDiv("idUsuarioDiv");
		hideDiv("idDealerDiv");
		hideDiv("dealerDiv");

		switch (parseInt(valorObjetivo)){
			case 1: showDiv("usuarioDiv");
					showDiv("idUsuarioDiv");
					showDiv("particionDIV");
					break;
		    case 2:
					showDiv("usuarioDiv");
					showDiv("idUsuarioDiv");
					document.forms[0].particion.value = "0";
					break;
			case 3:	showDiv("idFlotaDiv");
					showDiv("flotaDiv");
					break;
			case 4:	showDiv("idAliasDiv");
					showDiv("aliasDiv");
					break;
			case 5: showDiv("idDealerDiv");
					showDiv("dealerDiv");
					break;
		}

    }

	function setDefaultUsuario()
	{
		var formLogin = document.getElementById('frmLogin');
		var galletaCodigoRC = CojerCookie( 'codigorc' );
		var galletaCodigoCuenta = CojerCookie( 'codigocuenta' );
		var galletaParticion = CojerCookie( 'particion' );
		var galletaCodigoFlota = CojerCookie( 'codigoFlota' );
		var galletaAliasString = CojerCookie( 'aliasString' );
		var galletaCodigoDealer = CojerCookie( 'codigoDealer' );
		if( (galletaCodigoRC != null) && (galletaCodigoCuenta != null) && (galletaParticion != null) )
		{
			formLogin.codigorc.value = galletaCodigoRC;
			formLogin.codigocuenta.value = galletaCodigoCuenta;
			formLogin.particion.value = galletaParticion;
		}
		if( galletaCodigoFlota != null )
			formLogin.codigoFlota.value = galletaCodigoFlota;
		if( galletaAliasString != null )
			formLogin.aliasString.value = galletaAliasString;
		if( galletaCodigoDealer != null )
			formLogin.codigoDealer.value = galletaCodigoDealer;
	 }

	function initLoginState(){
		document.forms[0].objetivo.focus();
		setDefaultObjetivo();
		changeLogin();
		alertaMessage();
	}

	function initialize() {
		controlarMantenimiento();
	}

	function alertaMensaje( codigoError )
	{
		hideDiv("divCargando");

		var mensaje = "";
		switch( codigoError ){
			case 1:	{
				mensaje = 'Se produjo un error al conectarse a la DB. Reintente mas tarde.';
				break;
			}
			case 2:	{
				mensaje = 'Se produjo un error al ejecutar la consulta. Reintente mas tarde.';
				break;
			}
			case 5:	{
				mensaje = 'Alias inexistente.';
				break;
			}
			case 6:{
				mensaje = 'Flota inexistente.';
				break;
			}
			case 7:	{
				mensaje = 'Cuenta inexistente.';
				break;
			}
			case 8:{
				mensaje = 'No se pudo obtener la informacion de la cuenta. Comuniquese con el administrador del sistema.';
				break;
			}
			case 9:{
				mensaje = 'Esta intentando entrar a un area restringida. Consulte al proveedor del sistema para utilizar este servicio';
				break;
			}
			case 10:{
				mensaje = 'La cuenta no tiene configurada una direccion de mail. Comuniquese con el administrador del sistema.';
				break;
			}
			case 11:{
				mensaje = 'Cuenta sin activar!. Se le ha enviado un correo electronico para que realice la activacion.';
				break;
			}
			case 12:{
				mensaje = 'Su cuenta ha sido bloqueada tras reiterados intentos fallidos de logueo. Contactese con el administrador del sistema para desbloquearla.';
				break;
			}
			case 13:{
				mensaje = 'El password no es valido!.';
				break;
			}
			case 14:{
				mensaje = 'Se le ha enviado un correo electronico para que realice el cambio de password.';
				break;
			}
			case 15:{
				mensaje = 'El email ingresado no coincide con el de la cuenta.';
				break;
			}
			case 16:{
				mensaje = 'Su cuenta no se encuentra activada. Ingrese a la opcion \'Activar cuenta\'.';
				break;
			}
			case 17:{
				mensaje = 'Su password ha sido modificado con exito.';
				break;
			}
			case 18:{
				mensaje = 'El usuario ya se encuentra logueado en otra terminal. Reintente mas tarde.';
				break;
			}
			case 19:{
				mensaje = 'Servicio en mantenimiento (Codigo 19).';
				break;
			}
			case 20:{
				mensaje = 'Servicio en mantenimiento (Codigo 20).';
				break;
			}
			case 21:{
				mensaje = 'Servicio en mantenimiento (Codigo 21).';
				break;
			}
			case 22:{
				mensaje = 'El tipo de cuenta con la que intenta ingresar no es valido.';
				break;
			}
			case 23:{
				mensaje = 'Se ha alcanzado el limite en la cantidad de cuentas/alias que estan logueadas en este momento.';
				break;
			}
			case 24:{
				mensaje = 'Se ha vencido el tiempo de espera para que el servidor envie el mail. Controle su casilla de correo y si aun no recibio una respuesta vuelva a intentar esta operacion.';
				break;
			}
			case 25:{
				mensaje = 'Servicio en mantenimiento (Codigo 22).';
				break;
			}
			case 30:{
				mensaje = 'Error desconocido.';
				break;
			}
			case 40:{
				mensaje = 'La flota no tiene moviles asociados.';
				break;
			}
			case 41:{
				mensaje = 'En este momento la cuenta Dealer con la que intenta ingresar no tiene moviles asociados.';
				break;
			}
		    case 42:{
				mensaje = 'Dealer inexistente.';
				break;
			}
		    case 50:{
				mensaje = 'Ya ha iniciado sesion con este navegador. Intente loguearse con otro.';
				break;
			}
		    case 51:{
				mensaje = 'En este momento la cuenta Alias con la que intenta ingresar no tiene cuentas asociadas.';
				break;
			}
		    case 52:{
				mensaje = 'CUENTA DESHABILITADA.';
				break;
			}
		    case 53:{
				mensaje = 'Alias deshabilitado.';
				break;
			}
		}

		alert( mensaje );
	}

	function alertaMessage()
	{
		<?php
			if( isset($_REQUEST['error']) )
			{
		?>
				alertaMensaje( <?= $_REQUEST['error'] ?> );
		<?php
				unset($_REQUEST['error']);
			}

			if (isset($_GET['message']))
			{
		?>
				alert('<?= $_GET['message'] ?>');
		<?php
				unset($_GET['message']);
			}
		?>
	}
</script>
</body>
</html>